import java.util.*;

class Socio {
      private static HashMap listaSocios = new HashMap();
      private static int contador = 0;
      private int codSocio;
      private String nombre;
      private String direccion;
      private String telefono;
      private ArrayList listaDeLibros = new ArrayList();


      Socio (String nombreSocio, String direccionSocio, String telefonoSocio){
              contador++;
              codSocio = contador;
              nombre = nombreSocio;
              direccion = direccionSocio;
              telefono = telefonoSocio;
              listaSocios.put(new Integer(codSocio),this);
      }
      
      public static Socio recuperarSocio(int codSocio){
              Integer clave = new Integer (codSocio);
              if (listaSocios.containsKey(clave)){
                  return((Socio)listaSocios.get(clave));
              }
              else 
                  return(null);
      }

      public static boolean bajaSocio(int codSocio){
              Socio s = Socio.recuperarSocio(codSocio);
              Integer clave = new Integer(codSocio);
              if (listaSocios.containsKey(clave)){
                if ((s.listaDeLibros.size() == 0)) {
                  listaSocios.remove(clave);
                  return (true);
                }
                else {
		return false;
	        } 
              }
              else 
                  return (false);
     }

     public boolean PedirPrestado(int codLibro) {
             int max = 5;
             //Integer clave = new Integer(codLibro);
             if ((listaDeLibros.size()) < max) {
             Libro libro = Libro.recuperarLibro(codLibro);
             if (libro == null) {
                return (false);
             }
             else {
                if (libro.prestar(this)){
                listaDeLibros.add(libro);
                return (true);
                }
                else {
                   return (false);
                }
                }
             }
             else {
                return (false);   
             }            
     }

     public void DevolverPrestado(Libro libro) {
             listaDeLibros.remove(libro);
             
     }

}
